package com.ruoyi.inspection.domain;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.inspection.utils.IdFactory;
import lombok.Data;

import java.io.Serializable;
import java.util.Date;

/**
 * 专项任务计划检查项表(GovernCheckTaskPlanItem)实体类
 *
 * @author makejava
 * @since 2024-06-19 16:16:21
 */
@Data
public class GovernCheckTaskPlanItem implements Serializable {
    private static final long serialVersionUID = -11646347619032502L;
    @JsonSerialize(using= ToStringSerializer.class)
    private Long governTaskPlanItemId;
    /**
     * 计划ID
     */
    @JsonSerialize(using= ToStringSerializer.class)
    private Long governTaskPlanId;
    /**
     * 下发专项任务ID
     */
    private String governCheckTaskItemId;
    /**
     * 下发任务ID
     */
    private String governCheckTaskId;
    /**
     * 专项名称
     */
    private String governCheckName;
    /**
     * 专项检查内容
     */
    private String governCheckContent;
    /**
     * 专项检查方式
     */
    private String governCheckWay;
    /**
     * 专项检查依据
     */
    private String governCheckBasis;
    /**
     * 专项检查适用场合
     */
    private String governApplicablePlace;
    /**
     * 检查时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date governCheckTime;
    /**
     * 检查结果
     */
    private String governCheckResult;
    /**
     * 是否符合（0符合 1不符合）
     */
    private Integer governCheckConform;
    /**
     * 是否标记（0未标记 1已标记）
     */
    private Integer governCheckSign;
    /**
     *
     */
    private String governCheckUserName;
    /**
     * 检查人员名称
     */
    private String governCheckUserId;
    /**
     * 删除标志（0未删除）
     */
    private Integer governDeleted;
    /**
     * 创建人
     */
    private String governCreateBy;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date governCreateDate;
    /**
     * 修改人
     */
    private String governUpdateBy;
    /**
     * 修改时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date governUpdateDate;

    /** 查询范围：0全部，1未排查 2已排查 **/
    private String type;

    private String submitStatus = "0";
    /** 0未分配检查人  1已分配检查人***/
    private String hasCheckUser;
    private Long[] governTaskPlanItemIds;

    /**
     * 检查表名称
     */
    @Excel(name = "检查表名称")
    private String checkPlanName;

    /**
     * 是否政府检查 1-是 0-否
     */
    private String isGovernCheck;
    // 计划开始时间
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date governTaskStartTime;
    // 计划结束时间
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date governTaskEndTime;

    public GovernCheckTaskPlanItem setPlanId(GovernCheckTaskPlanItem bean, Long governPlanId, String userName) {
        bean.setGovernTaskPlanItemId(IdFactory.newLongId());
        bean.setGovernTaskPlanId(governPlanId);
        bean.setGovernCreateDate(new Date());
        bean.setGovernCheckResult("未排查");
        bean.setGovernCreateBy(userName);
        bean.setGovernDeleted(0);

        return bean;
    }


}

